/**
 * @Date 2023-05-30 10:54:22
 * @Remark
 */

interface fileUtilsDto {
  multiple?: string;
  accept?: string;
}

const initOptions = {
  multiple: "1",
  accept: "video/*",
};

// 原生方法上传文件
/**
 * @param accept
 * accept=“image/png” 或 accept=“.png” ——只接受 png 图片.
 * accept=“image/png, image/jpeg” 或 accept=“.png, .jpg, .jpeg” ——PNG/JPEG 文件.
 * accept=“image/*” ——接受任何图片文件类型.
 * accept=“audio/*” —— 接受任何音频文件类型.
 * accept=“video/*” —— 接受任何音频视频文件类型.
 * accept=“.doc,.docx,.xml,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document” —— 接受任何 MS Doc 文件类型.
 */
function fileUpload(options?: fileUtilsDto): any {
  return new Promise((res, rej) => {
    const op = { ...initOptions, ...options };
    const input = document.createElement("input");
    input.setAttribute("type", "file");
    input.setAttribute("accept", op.accept);
    input.setAttribute("multiple", op.multiple);
    input.onchange = (e) => {
      res(input.files);
    };
    //触发点击
    input.click();
  });
}

const fileUtils = {
  fileUpload,
};

export default fileUtils;
